
// var socket;
// const config = require('../utils/config.js')
//   /**
//    * 链接服务器
//    */
//   export function connect(reqType,reqParam){
//       const that = this
//      let globalData=getApp().globalData;
//     //  console.log(globalData)
//      const op = wx.getStorageSync('openid')
//     //  console.log(op)
//      const openid = globalData.openId || op
//       if(!openid){
//         console.log('socket连接创建失败没有openId'+openid);
//         return;
//       }
    
    
//     // console.log("创建新连接"+globalData.openId)

//     if(socket){
//       wx.closeSocket(socket);
//     }
//     // console.log('123')
//     socket=wx.connectSocket({
//       url: config.socketServer,
//       header:{
//         openId:globalData.openId,
//         platform:'store'
//       },
//       success() {
//         console.log('连接成功')
//         console.log(reqType,reqParam)
        
//       },
//       fail(err) {
//         console.log('连接失败',err)
//       }
//     })
   
//     socket.onOpen(function(res){
//       // console.log(res);
//       // console.log("onOpen");
//       checkHeart();
     
//     });
//     socket.onClose(function(res){
//       // console.log("onClose");
//       // console.log(res);
//     });
//     socket.onError(function(res){
//       console.log("onError");
//       // console.log(res);
//       setTimeout(connect, 3000);
//     });
//     socket.onMessage(function(res){
//      //此处需要监听心跳，如果没有心跳则重新链接
//       // console.log(res);
//       let json=JSON.parse(res.data);
//       if(json.reqType==CHECK_HEARTBEAT){
        
//         serverNum=json.reqParam.num+1;
//       }

//       getApp().globalData[json.reqType]=json;
//      // let aa= getApp().globalData;//[json.reqType];
      
//     });
//     if(reqType && reqParam) {
//       that.sendData(reqType,reqParam)
//     }
//   }
  

// /**
//  * 获取链接
//  */
// export function  getsocket(){
//     return socket;
//   }

//   export function  sendData(reqType,reqParam){
//    //let readyStat= getsocket().readyStat;
//    //getsocket().send(param);
//    console.log('发送')
//   //  console.log(socket)
//   let json={reqType:reqType,reqParam:reqParam}
//   let msg= JSON.stringify(json);
//   let sendData={data:msg}
//     if(socket&&socket.readyState==1){
      
//       socket.send(sendData);
//     } else{
//       let that=this;
//       // console.log(reqType+"-socket尚未初始化.稍后重发")
//       setTimeout(()=>{
//         // console.log(reqType,reqParam)
//         //重新打开时会出现没有连接状态
//         console.log('重新连接')
//         that.connect(reqType,reqParam)
//         // that.sendData(reqType,reqParam)
//         // console.log(reqType+"重发成功")
//       }, 100)
//     }
//   }
//   let heartNum=0;//请求服务器的编号
//   let serverNum=0;//服务器返回的编号
// //检测心跳
//  function checkHeart(){
//     let reqParam={num:heartNum};
//    sendData(CHECK_HEARTBEAT,reqParam);

//     setTimeout(function(){
//       checkNum(heartNum);
//     },1500);
//     heartNum++;
   
//   }
//   /**
//    * 检测数字发生变化，
//    */
//   function checkNum(heartNum){
//     if(heartNum>serverNum){
//       //多次请求服务器都没有返回
//       //debugger;
//       connect();
//     }else{
//       //请求通了，5秒后再请求
//       setTimeout(checkHeart,5000);
//     }
//   }

//   let CHECK_HEARTBEAT="CHECK_HEARTBEAT";
//   //（接口）获取我的未读消息总数
//   //（接口）获取我的消息列表（分页）单独创建一张统计表存储，与某个人的最后一条信息， 一个人的对话一条（未读消息数量，最后一条消息信息+时间、(如果是当天只返回时分秒，如果不是当天则只返回月-日)）

//   //（接口）获取与某人的对话列表倒序分页
//   //（接口）将某人发给我的信息变为已读
//   //（接口）收到新消息（服务端通知客户端）
//   //（接口）给某人发消息

//   //数据库
//   //消息表
//   // id  发送人id ，接收人id， 消息内容，发送时间，是否已读（默认未读），读取时间，
//   //聊天统计表
//   //id  两个人的id组合唯一值 ，最后一条消息内容，最后一条消息时间，


// 2
// var socket;
// var cacheQue = null
// const config = require('../utils/config.js')
//   /**
//    * 链接服务器
//    */
//   export function connect(){
   
//      let globalData=getApp().globalData;
//      const op = wx.getStorageSync('openid')
//      const openid = globalData.openId || op
//       if(!openid){
//         console.log('socket连接创建失败没有openId'+openid);
//         return;
//       }
    
    
//     console.log("创建新连接"+openid)

//     if(socket){
//       wx.closeSocket(socket);
//     }
//     socket=wx.connectSocket({
//       url: config.socketServer,
//       header:{
//         openId:globalData.openId,
//         platform:'store'
//       },
//       success() {
//         if(cacheQue) {
//           const copyCacheQue = {...cacheQue}
//           cacheQue = null
//           that.sendData(copyCacheQue.reqType,copyCacheQue.reqParam)
//           copyCacheQue = null
//         }
//       }
//     })
   
//     socket.onOpen(function(res){
//       console.log(res);
//       console.log("onOpen");
//       checkHeart();
     
//     });
//     socket.onClose(function(res){
//       console.log("onClose");
//       console.log(res);
//     });
//     socket.onError(function(res){
//       console.log("onError");
//       console.log(res);
//       setTimeout(connect, 3000);
//     });
//     socket.onMessage(function(res){
//      //此处需要监听心跳，如果没有心跳则重新链接
//      //  console.log(res);
//       let json=JSON.parse(res.data);
//       if(json.reqType==CHECK_HEARTBEAT){
        
//         serverNum=json.reqParam.num+1;
//       }

//       getApp().globalData[json.reqType]=json;
//      // let aa= getApp().globalData;//[json.reqType];
      
//     });
   
//   }
  

// /**
//  * 获取链接
//  */
// export function  getsocket(){
//     return socket;
//   }

//   export function  sendData(reqType,reqParam){
//    //let readyStat= getsocket().readyStat;
//    //getsocket().send(param);
//     // console.log('发送')
//     console.log(socket)
//   let json={reqType:reqType,reqParam:reqParam}
//   let msg= JSON.stringify(json);
//   let sendData={data:msg}
//     if(socket&&socket.readyState==1){
//       socket.send(sendData);
//     } else{
//       let that=this;
//       console.log(reqType+"-socket尚未初始化.稍后重发")
//       setTimeout(()=>{
//         cacheQue = {reqType,reqParam}
//         that.connect()
//         // that.sendData(reqType,reqParam)
//         // console.log(reqType+"重发成功")
//     }, 100)
//     }
//   }
//   let heartNum=0;//请求服务器的编号
//   let serverNum=0;//服务器返回的编号
// //检测心跳
//  function checkHeart(){
//     let reqParam={num:heartNum};
//    sendData(CHECK_HEARTBEAT,reqParam);

//     setTimeout(function(){
//       checkNum(heartNum);
//     },1500);
//     heartNum++;
   
//   }
//   /**
//    * 检测数字发生变化，
//    */
//   function checkNum(heartNum){
//     if(heartNum>serverNum){
//       //多次请求服务器都没有返回
//       //debugger;
//       connect();
//     }else{
//       //请求通了，5秒后再请求
//       setTimeout(checkHeart,5000);
//     }
//   }

//   let CHECK_HEARTBEAT="CHECK_HEARTBEAT";
//   //（接口）获取我的未读消息总数
//   //（接口）获取我的消息列表（分页）单独创建一张统计表存储，与某个人的最后一条信息， 一个人的对话一条（未读消息数量，最后一条消息信息+时间、(如果是当天只返回时分秒，如果不是当天则只返回月-日)）

//   //（接口）获取与某人的对话列表倒序分页
//   //（接口）将某人发给我的信息变为已读
//   //（接口）收到新消息（服务端通知客户端）
//   //（接口）给某人发消息

//   //数据库
//   //消息表
//   // id  发送人id ，接收人id， 消息内容，发送时间，是否已读（默认未读），读取时间，
//   //聊天统计表
//   //id  两个人的id组合唯一值 ，最后一条消息内容，最后一条消息时间，

// 3
// var socket;
// const config = require('../utils/config.js')
// var connectState = 0
//   /**
//    * 链接服务器
//    */
//   export function connect(){
//       if(connectState == 1) {
//         return
//       }
//       connectState = 1
//      let globalData=getApp().globalData;
//      const op = wx.getStorageSync('openid')
//      const openId = globalData.openId || op
//      console.log(openId)
//       if(!openId){
//         console.log('socket连接创建失败没有openId'+openId);
//         return;
//       }
    
    
//     console.log("创建新连接"+globalData.openId)

//     if(socket){
//       wx.closeSocket(socket);
//     }
//     socket=wx.connectSocket({
//       url: config.socketServer,
//       header:{
//         openId:globalData.openId,
//         platform:'store'
//       },
//       success() {
//         connectState = 0
//         console.log('连接成功')
//       }
//     })
   
//     socket.onOpen(function(res){
//       console.log(res);
//       console.log("onOpen");
//       checkHeart();
     
//     });
//     socket.onClose(function(res){
//       console.log("onClose");
//       console.log(res);
//     });
//     socket.onError(function(res){
//       console.log("onError");
//       console.log(res);
//       setTimeout(connect, 3000);
//     });
//     socket.onMessage(function(res){
//      //此处需要监听心跳，如果没有心跳则重新链接
//      //  console.log(res);
//       let json=JSON.parse(res.data);
//       if(json.reqType==CHECK_HEARTBEAT){
        
//         serverNum=json.reqParam.num+1;
//       }

//       getApp().globalData[json.reqType]=json;
//      // let aa= getApp().globalData;//[json.reqType];
      
//     });
   
//   }
  

// /**
//  * 获取链接
//  */
// export function  getsocket(){
//     return socket;
//   }

//   export function  sendData(reqType,reqParam){
//     const that = this
//    //let readyStat= getsocket().readyStat;
//    //getsocket().send(param);
//     // console.log('发送')
//     console.log(socket)
//     if(!socket) {
//       that.connect()
//     }
//   let json={reqType:reqType,reqParam:reqParam}
//   let msg= JSON.stringify(json);
//   let sendData={data:msg}
//     if(socket&&socket.readyState==1){
//       console.log(sendData)
//       socket.send(sendData);
//     } else{
//       // let that=this;
//       // console.log(reqType+"-socket尚未初始化.稍后重发")
//       setTimeout(()=>{
//         that.sendData(reqType,reqParam)
//         // console.log(reqType+"重发成功")
//     }, 100)
//     }
//   }
//   let heartNum=0;//请求服务器的编号
//   let serverNum=0;//服务器返回的编号
// //检测心跳
//  function checkHeart(){
//     let reqParam={num:heartNum};
//    sendData(CHECK_HEARTBEAT,reqParam);

//     setTimeout(function(){
//       checkNum(heartNum);
//     },1500);
//     heartNum++;
   
//   }
//   /**
//    * 检测数字发生变化，
//    */
//   function checkNum(heartNum){
//     if(heartNum>serverNum){
//       //多次请求服务器都没有返回
//       //debugger;
//       connect();
//     }else{
//       //请求通了，5秒后再请求
//       setTimeout(checkHeart,5000);
//     }
//   }

//   let CHECK_HEARTBEAT="CHECK_HEARTBEAT";
//   //（接口）获取我的未读消息总数
//   //（接口）获取我的消息列表（分页）单独创建一张统计表存储，与某个人的最后一条信息， 一个人的对话一条（未读消息数量，最后一条消息信息+时间、(如果是当天只返回时分秒，如果不是当天则只返回月-日)）

//   //（接口）获取与某人的对话列表倒序分页
//   //（接口）将某人发给我的信息变为已读
//   //（接口）收到新消息（服务端通知客户端）
//   //（接口）给某人发消息

//   //数据库
//   //消息表
//   // id  发送人id ，接收人id， 消息内容，发送时间，是否已读（默认未读），读取时间，
//   //聊天统计表
//   //id  两个人的id组合唯一值 ，最后一条消息内容，最后一条消息时间，



var socket;
const config = require('../utils/config.js')
  /**
   * 链接服务器
   */
  export function connect(){
   
     let globalData=getApp().globalData;
     const op = wx.getStorageSync('openid')
     const openid = globalData.openId || op
      if(!openid){
        // console.log('socket连接创建失败没有openId'+openid);
        return;
      }
    
    
    // console.log("创建新连接"+globalData.openId)

    if(socket){
      wx.closeSocket(socket);
    }
    socket=wx.connectSocket({
      url: config.socketServer,
      header:{
        openId:globalData.openId,
        platform:'store'
      }
    })
   
    socket.onOpen(function(res){
      // console.log(res);
      // console.log("onOpen");
      checkHeart();
     
    });
    socket.onClose(function(res){
      // console.log("onClose");
      // console.log(res);
    });
    socket.onError(function(res){
      // console.log("onError");
      // console.log(res);
      setTimeout(connect, 3000);
    });
    socket.onMessage(function(res){
     //此处需要监听心跳，如果没有心跳则重新链接
     //  console.log(res);
      let json=JSON.parse(res.data);
      if(json.reqType==CHECK_HEARTBEAT){
        
        serverNum=json.reqParam.num+1;
      }

      getApp().globalData[json.reqType]=json;
     // let aa= getApp().globalData;//[json.reqType];
      
    });
   
  }
  

/**
 * 获取链接
 */
export function  getsocket(){
    return socket;
  }

  export function  sendData(reqType,reqParam){
   //let readyStat= getsocket().readyStat;
   //getsocket().send(param);
    // console.log('发送')
    // console.log(socket)
  let json={reqType:reqType,reqParam:reqParam}
  let msg= JSON.stringify(json);
  let sendData={data:msg}
    if(socket&&socket.readyState==1){
      socket.send(sendData);
    } else{
      let that=this;
      // console.log(reqType+"-socket尚未初始化.稍后重发")
      setTimeout(()=>{
        that.sendData(reqType,reqParam)
        // console.log(reqType+"重发成功")
    }, 100)
    }
  }
  let heartNum=0;//请求服务器的编号
  let serverNum=0;//服务器返回的编号
//检测心跳
 function checkHeart(){
    let reqParam={num:heartNum};
   sendData(CHECK_HEARTBEAT,reqParam);

    setTimeout(function(){
      checkNum(heartNum);
    },1500);
    heartNum++;
   
  }
  /**
   * 检测数字发生变化，
   */
  function checkNum(heartNum){
    if(heartNum>serverNum){
      //多次请求服务器都没有返回
      //debugger;
      connect();
    }else{
      //请求通了，5秒后再请求
      setTimeout(checkHeart,5000);
    }
  }

  let CHECK_HEARTBEAT="CHECK_HEARTBEAT";
  //（接口）获取我的未读消息总数
  //（接口）获取我的消息列表（分页）单独创建一张统计表存储，与某个人的最后一条信息， 一个人的对话一条（未读消息数量，最后一条消息信息+时间、(如果是当天只返回时分秒，如果不是当天则只返回月-日)）

  //（接口）获取与某人的对话列表倒序分页
  //（接口）将某人发给我的信息变为已读
  //（接口）收到新消息（服务端通知客户端）
  //（接口）给某人发消息

  //数据库
  //消息表
  // id  发送人id ，接收人id， 消息内容，发送时间，是否已读（默认未读），读取时间，
  //聊天统计表
  //id  两个人的id组合唯一值 ，最后一条消息内容，最后一条消息时间，